package at.ac.univie.bi.transformation.service.input;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

import at.ac.univie.bi.transformation.model.input.Krankenhausaufenthalt;
import at.ac.univie.bi.transformation.persistence.DBHandler;

public class KHAService extends AbstractInputEntityService {
	
	public static List<Krankenhausaufenthalt> selectKHAufenthalte() {
		String tableName = "Krankenhausaufenthalt";
		List<Krankenhausaufenthalt> khAufenthalte = new ArrayList<Krankenhausaufenthalt>();
		Statement stmt = null;
		Connection oldDB = DBHandler.getOldDB();
		  
		try
	      {
	          stmt = oldDB.createStatement();
	          ResultSet results = stmt.executeQuery("select * from " + tableName);
	          

	          while(results.next())
	          {
	        	  int id = results.getInt("id");
	              int patientId = results.getInt("patientId");
	              Timestamp aufnahme = results.getTimestamp("aufnahme");
	              Timestamp entlassung = results.getTimestamp("entlassung");
	              
	              Krankenhausaufenthalt kha = new Krankenhausaufenthalt();
	              
	              kha.setId(id);
	              kha.setPatientId(patientId);
	              kha.setAufnahme(aufnahme);
	              kha.setEntlassung(entlassung);
	              
	              khAufenthalte.add(kha);
	          
	              
	          }
	          results.close();
	          stmt.close();

	      }
	      catch (SQLException sqlExcept)
	      {
	          sqlExcept.printStackTrace();
	      }
	      
	      
	      return khAufenthalte;
		
	}
	
	public static Krankenhausaufenthalt selectKHAById(int khaId) {
		String tableName = "Krankenhausaufenthalt";
		Krankenhausaufenthalt kha = new Krankenhausaufenthalt();
		Statement stmt = null;
		Connection oldDB = DBHandler.getOldDB();
		  
		try
	      {
	          stmt = oldDB.createStatement();
	          ResultSet results = stmt.executeQuery("select * from " + tableName +" WHERE id="+ khaId);
	          

	          while(results.next())
	          {
	              int patientId = results.getInt("patientId");
	              Timestamp aufnahme = results.getTimestamp("aufnahme");
	              Timestamp entlassung = results.getTimestamp("entlassung");
	              
	              kha.setPatientId(patientId);
	              kha.setAufnahme(aufnahme);
	              kha.setEntlassung(entlassung);             
	          
	              
	          }
	          results.close();
	          stmt.close();

	      }
	      catch (SQLException sqlExcept)
	      {
	          sqlExcept.printStackTrace();
	      }
	      
	      
	      return kha;
		
	}
	
	
	@Override
	public void readAll() {
		// TODO Auto-generated method stub
		
	}
	

}
